1. Field of the Invention
Embodiments of the invention described herein pertain to the field of computer software and/or hardware related to mobile communication devices. More particularly, but not by way of limitation, the computer software and/or hardware enables the development and deployment of applications that are independent of the mobile communication device upon which the application is executed.
2. Description of the Related Art
The term mobile communication device refers to any apparatus configured to send and receive data. Some examples of mobile communication devices include cell phones, PDAs, portable computers, or any device able to send and receive data over a communication network. Over the past several years mobile communication devices have become an integrated part of everyday life. This has led to a proliferation of applications intended for use in a mobile environment. As such mobile devices are often required to serve as a platform for executing various types of applications.
The problem that arises in creating applications that must execute across various different device types is that these different devices often have different operating systems and development environments. PDAs, for instance, may use Windows CE (TM), the Palm OS (TM) as the underlying operating system upon which software executes. Cell phones providers have attempted to overcome this problem by developing technologies such as BREW, J2ME, and WAP that act as platforms which enable software to execute across multiple types of mobile devices. JAVA and other virtual machine (VM) technologies also provide systems with the ability to execute software that is native to the VM rather than the operating system upon which the VM executes.
Although attempts have been made to create device independent operating systems (such as the ones described above), the incompatibility problem largely remains in that each cell phone provider has their own unique “solution” to address the issue. Hence, applications must still be written for a specific platform. Software written for one company, for instance, must be written to execute on BREW whereas software written for another company must be able to execute on J2ME for example.
Deploying one application to multiple platforms requires that developers write multiple applications where each application is specific to a particular platform. This remains to be the case even though the functionality of the application and often the interface itself is intended to be the same regardless of the underlying operating system. This process requires developers of mobile communication applications to invest significant time and resources in developing applications that are platform specific and in some case (e.g., where screen sizes dramatically differ) device specific. When a program error is discovered in an application specific to a particular platform, the error must be fixed in multiple platform dependent copies of the application and then deployed separately to multiple server systems. Each time an application is ported to a separate application environment a team of developers is required to invest their time and energy into developing, maintaining, and upgrading the program. It is not uncommon for companies to employ completely separate teams of developers to develop different versions of the same application. This is a significant waste of resources, but one that is required by current design limitations.
Because of these and other limitations inherent in the design of current systems there is a need for a system that enables developers to efficiently develop, deploy and maintain one instance of an application that can execute on multiple disparate mobile communication platforms.